package com.ynu.bean;

import com.alibaba.fastjson.JSON;
import com.github.pagehelper.Page;
import com.ynu.constant.WeGo;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * 封装了分页时，后端传递给前端的数据
 * @param <T>
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class PageBean<T> {
    /**
     * 每页显示的条数
     */
    private Integer pageSize = WeGo.PAGE_SIZE;

    /**
     * 当前的页码
     */
    private Integer pageNum;

    /**
     * 一共有多少页
     */
    private Integer pages;

    /**
     * 每一页所显示的数据
     */
    private List<T> result;

//    /**
//     * 分页请求路径
//     */
//    private String url;

    //@Override
    //public String toString() {
    //    return  JsonUtil.obj2String(this);
    //}

    /**
     * 将MyBatisPlus返回的IPage数据封装为自定义的PageBean
     *
     * @param page
     * @param <T>
     * @return
     */
    public static <T> PageBean<T> trans(Page<T> page) {
        PageBean<T> pageBean = new PageBean<>();
        if (page != null) {
            pageBean.setPageNum(page.getPageNum());
            pageBean.setPageSize(page.getPageSize());
            pageBean.setPages(page.getPages());
            pageBean.setResult(page.getResult());
        }
        return pageBean;
    }

    @Override
    public String toString() {
        String json = JSON.toJSONString(this);

        return json;
    }
}